package com.handinglian.task.service.impl;

import com.handinglian.task.entity.TaskUserCall;
import com.handinglian.task.mapper.TaskUserCallMapper;
import com.handinglian.task.service.TaskUserCallService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Service("taskUserCallService")
public class TaskUserCallServiceImpl implements TaskUserCallService {
    @Autowired
    private TaskUserCallMapper taskUserCallMapper;

    @Override
    @Transactional
    public int createTaskUserCall(List<Integer> taskUserIds) {
        Date now = new Date();
        List<TaskUserCall> taskUserCalls = new ArrayList<>();
        taskUserIds.forEach(taskUserId ->{
            TaskUserCall taskUserCall = new TaskUserCall();
            taskUserCall.setTaskUserId(taskUserId);
            taskUserCall.setOperationTime(now);
            taskUserCalls.add(taskUserCall);
        });

        return taskUserCallMapper.batchInsert(taskUserCalls);
    }

    @Override
    public List<TaskUserCall> inquireTaskUserCallList(Integer taskUserId) {
        return taskUserCallMapper.findByTaskUserId(taskUserId);
    }

    @Override
    public List<TaskUserCall> list(Integer userId, String customerPhone, Date startDate, Date endDate) {
        return taskUserCallMapper.list(userId, customerPhone, startDate, endDate);
    }

    @Override
    @Transactional
    public int updateBatch(List<TaskUserCall> taskUserCalls) {
        return taskUserCallMapper.updateBatch(taskUserCalls);
    }

    @Override
    public List<TaskUserCall> list(Integer taskId) {
        return taskUserCallMapper.findByTaskId(taskId);
    }
}
